--[[
描述 ： UIButton控件
作者 ： 付大志
时间 ： 13/08/08
注意：11.23添加了textAlign属性  文字对其方式
]]
UIButton = Class(MLView,'UIButton');

UIButton.text   				= nil;     	-- 显示文本
UIButton.textAlign 	= nil;     	-- 文本对齐方式 0 左对齐  1居中  2右对齐
UIButton.fontHeight    			= nil;   	-- 字体高度
UIButton.fontColor    			= nil;    	-- 字体背景颜色
UIButton.fontFocusColor 		= nil;  	-- 字体聚集颜色
UIButton.bgImage    			= nil;  	-- 背景图片
UIButton.focusImage 			= nil;  	-- 聚集图片
UIButton.LOSE_FOCUS_INTERVAL	= AW(15);-- 失去焦点间隔 闸值
UIButton.mWidth 				= nil;     	-- 宽度
UIButton.mHeight 				= nil;     	-- 高度
UIButton.mIsFocus  				= nil;   	-- 是否聚焦
UIButton.mDownX    				= nil;   	-- 触摸屏x坐标
UIButton.mDownY    				= nil;   	-- 触摸屏Y坐标

--[[
功能   ： 初始化 UIButton 控件
参数   ： w     		宽度
	     h     		高度
	     viewCtrl	所在Ctrl
	     id			控件id
返回   ： button 实例
]]

function UIButton:init(width, height, viewCtrl, id)

  width  = width or UITheme.BUTTON_WIDTH;
  height = height or UITheme.BUTTON_HEIGHT;

  -- 初始化
  self:initView(width, height, viewCtrl, id);
  self.mWidth = width;
  self.mHeight = height;
  self.fontHeight = AW(UITheme.BUTTON_FONT_HEIGHT);
  self.fontColor = UITheme.BUTTON_FONT_COLOR;
  self.fontFocusColor = UITheme.BUTTON_FONT_FOCUS_COLOR;
  self.bgImage = UIImage.imageName(UITheme.BUTTON_BG_IMAGE);
  self.focusImage = UIImage.imageName(UITheme.BUTTON_FOCUS_IMAGE);


  self.onPoint = function (evt, x, y)
    --print('--------------------點cc擊-btn----------event',evt)

    local interval =  self.LOSE_FOCUS_INTERVAL;

    if evt == MLView.PointDown then
      --print('--------------------點擊-----------', MLView.PointDown);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus= true;
    elseif evt == MLView.PointUp then
      --print('--------------------抬起-----------', MLView.PointUp);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus = false;
    elseif evt == MLView.PointMove then
      --print('-----------------移動---------', MLView.PointMove);
      if math.abs(x-self.mDownX) > interval or math.abs(y-self.mDownY) > interval then
        self.mIsFocus = false;
      end
    elseif evt == MLView.PointCanCel then
      --print('-----------------离开---------', MLView.PointMove);
      self.mDownX = x;
      self.mDownY = y;
      self.mIsFocus = false;
    end

    self:draw();
    return 1;  -- 事件不拦截
  end


  return self;
end


--[[
功能   ： 设置文本
参数   ： text    文本
返回   ： 无
]]
function UIButton:setText(text)
  self.text = text;
  self:draw()
end

--[[
功能   ： 处理触摸笔事件
参数   ： evt   事件种类
         x     坐标
         y     坐标
返回   ： 无
]]
-- --[[
-- PointDown 	触摸笔按下	0
-- PointUp 	触摸笔抬起	1
-- PointMove 	触摸笔移动	2
-- PointCanCel 触摸笔取消	3
-- ]]
function UIButton:onPoint(evt, x, y)

end

--[[
功能   ： 画控件
参数   ： 无
返回   ： 无
]]
function UIButton:draw()
  local g = self:getGraphic();
  g:clear();
  local color, image = self.fontColor, self.bgImage;
  -- print('-------self.bgImage', self.bgImage);
  if self.mIsFocus then
    color = self.fontFocusColor;
    image = self.focusImage or self.bgImage;
  end

  local strw = MLNative.measStringWidth(self.text, self.fontHeight, self.fs);
  local x, y = (self.mWidth-strw)/2, (self.mHeight-self.fontHeight)/2;
  if image then
    -- print('--------if  image', image);
    g:drawImage(image, 0, 0, self.mWidth, self.mHeight);
  end

  if self.text then
    if self.textAlign == 0 then
       g:drawString(self.text, 0, y, color, self.fontHeight, self.fs);
    elseif self.textAlign == 2 then
       if strw > self.mWidth then
         g:drawString(self.text, 0, y, color, self.fontHeight, self.fs);
       else
         g:drawString(self.text, self.mWidth-strw , y, color, self.fontHeight, self.fs);
       end
    else   
       g:drawString(self.text, x, y, color, self.fontHeight, self.fs);
    end
  -- g:drawLine(0, y, 0, y+self.fontHeight, 0, 1);
  end
end

--[[
功能   ： 显示控件
参数   ： 无
返回   ： 无
]]
function UIButton:show()
  self:draw();
end

--[[
功能   ： 更新控件
参数   ： 无
返回   ： 无
]]
function UIButton:update()
  self:draw();
end



--[[
-----使用方法 V2.0
local btn = UIButton.new():init(AW(50), AW(35), self);
btn.text="标题";
btn.fontHeight         = AW(14);    -- 字体高度
btn.fontColor          = UIColor.COLOR_WHITE;      -- 字体背景颜色
btn.fontFocusColor     = UIColor.COLOR_BLACK;    -- 字体聚集颜色
btn.onClick = function ( )   --点击事件
	print('btn click');
end;
rootView:add(btn, 0, 0);

]]